void main() {
  /**
   * Dart 运算符
   * 地板除 (~/)
   * 类型判断运算符(is | is!)
   * 避空运算符(?? | ??=)
   * 条件属性访问(?.)
   * 级联运算符(..)
   *   myObject.myMethod() // 返回myMethod()的返回值
   *   myObject..myMethod() // 返回myObject对象引用
   */

  // 地板除
  print(1 ~/ 2); // 0

  // 类型判断运算符
  print(1 is int); // true
  print(1 is! String); // true 取反

  // 避空运算符
  print(1 ?? 2); // 1
  print(null ?? 2); // 2
  var a;
  a ??= 2;
  a ??= 5;
  print(a); // 2

  // 条件属性访问
  var b;
  b?.myMethod(); // null

  // 级联运算符
  Set set = new Set();
  set
    ..add(10)
    ..add(20)
    ..add(30)
    ..remove(10);
  print(set.toList()); // [20, 30]
}
